package horloge;

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;

import fr.alma.interfacesPlugins.PluginSortie;

/**
 * Classe d'affichage digital d'une horloge.
 * @author KROMMENHOEK Cedric
 *
 */
public class HorlogeDigitale implements PluginSortie {
	
	private JFrame fenetre;
	
	/**
	 * Label de l'afficheur digital.
	 */
	private JLabel label;
	
	/**
	 * Constructeur.
	 */
	public HorlogeDigitale() {
		// Constrution de la fenetre
		this.fenetre = new JFrame("Horloge digitale");
		this.fenetre.setSize(200, 80);
		this.fenetre.setResizable(false);
		this.fenetre.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		this.fenetre.setLocationRelativeTo(null);
		
		// On initialise notre JLabel
		this.label = new JLabel();
		Font police = new Font("DS-digital", Font.TYPE1_FONT, 30);
		this.label.setFont(police);
		this.label.setHorizontalAlignment(JLabel.CENTER);
		
		// On ajoute le JLabel à notre JFrame
		this.fenetre.getContentPane().add(this.label, BorderLayout.CENTER);
	}

	/**
	 * Acces a la categorie du plugin.
	 * @return la categorie
	 */
	public String getCategorie() {
		return "horloge";
	}

	/**
	 * Acces a la description du plugin.
	 * @return la description
	 */
	public String getDescription() {
		return "Affichage de l'horloge digitale";
	}
	
	/**
	 * Demarrage du plugin.
	 */
	public void start() {
		this.fenetre.setVisible(true);
	}

	/**
	 * Arret du plugin.
	 */
	public void stop() {
		this.fenetre.setVisible(false);
	}

	/**
	 * Mise a jour du plugin.
	 * @param objet la valeur devant etre mise a jour
	 */
	public void update(Object objet) {
		this.label.setText((String) objet);
	}

}
